const { userCollection } = require('../../common/constants');
const { ERROR } = require('../../common/error');
const { findUser } = require('../../lib/utils/account');

async function isAuthorizeApproved({ uid, appIdList } = {}) {
    const getUserRes = await userCollection.doc(uid).get();
    const userRecord = getUserRes.data[0];
    if (!userRecord) {
        throw {
            errCode: ERROR.ACCOUNT_NOT_EXISTS,
        };
    }
    const { userMatched } = await findUser({
        userQuery: userRecord,
        authorizedApp: appIdList,
    });

    if (userMatched.some((item) => item._id !== uid)) {
        throw {
            errCode: ERROR.ACCOUNT_CONFLICT,
        };
    }
}

module.exports = {
    isAuthorizeApproved,
};
